//#include<iostream>
//#include<thread>
//#include<mutex>
//using namespace std;
//
//
//
//
//
//
//void Print(int n,int& x,mutex& mtx)
//{
//	for (int i = 0; i < n; i++)
//	{
//		mtx.lock();
//		++x;
//		mtx.unlock(); 
//	}
//}
//
//template<class Lock>
//class LockGuard
//{
//public:
//	LockGuard(Lock& lk)
//		:_lk(lk)
//	{
//		_lk.lock();
//	}
//
//	~LockGuard()
//	{
//		_lk.unlock();
//	}
//
//private:
//	Lock& _lk;
//};
//
//
//
//int main()
//{
//
//	int x = 0;
//	mutex mtx;
//
//	auto Func = [&x,&mtx](int n) {for (int i = 0; i < n; i++)
//	{
//		mtx.lock();
//		++x;
//		mtx.unlock();
//
//	}
//	};
//	thread t(Func,10000);
//	thread t2(Func, 100);
//
//	cout << t.get_id()<<endl;
//	cout << t2.get_id() << endl;
//	cout << this_thread::get_id() << endl;
//
//	
//	t.join();
//	t2.join();
//	cout << x;
//
//	return 0;
//}


#include<iostream>
#include<thread>
#include<mutex>
#include<condition_variable>

int main()
{
	 
}

